Para este checkpoint, continuaremos utilizando a base de dados do github, reforçar o conhecimento em testes de hipóteses. Então, primeiramente iremos importar os dados:

commits = read_csv(here("data/github-users-committing-filetypes.csv"))

É importante lembrar que estamos relembrando as perguntas propostas no checkpoint anterior, então esta atividade é mais focada em trabalhar testes de hipóteses onde foi utilizado bootstrap. Se tiver a curiosidade de ver o notebook anterior está neste link.

commits <- commits %>%
  mutate(date = paste(the_year,the_month,month_day,sep='-') %>% 
           as.Date(.))

commits$weekday <- weekdays(as.Date(commits$date))

Antes de tudo, é bom notar que para o ano de 2017 só temos dados até o primeiro semestre, então algumas linguagens possuem poucas ocorrências devido a isso. Mas, com este gráfico, podemos notar que linguagens como C não chegaram nem a metade da sua ocorrência no ano de 2016, durante o primeiro semestre de 2017, este fator acontece com outras linguagens como Java e c++. Também podemos destacar que há extensões que só foram utilizadas até então no ano de 2016, isto ocorre com cc. Outro ponto é extensões que já no primeiro semestre de 2017 já superaram mais da metade do ano anterior, isto aconteceu com a extensão woff, ou seja, pode ser uma possível extensão em potencial na comunidade tecnológica.

1. Pode se dizer que o grupo de linguagens formado por go, python e ruby que se destaca nas férias de inverno ou de verão?

Obs.: Contanto no hemisfério Sul: Férias de verão: mês de janeiro Férias de inverno: mês de junho

ferias_inverno <- commits %>% 
  filter(the_month == 6,
         file_extension %in% c("go", "py", "rb"))

ferias_verao <- commits %>% 
  filter(the_month == 1,
         file_extension %in% c("go", "py", "rb"))
ferias_inverno %>% 
  ggplot(aes(x = file_extension,
             y = users,
             fill = file_extension)) +
  geom_col() +
  labs(title = "Férias de inverno")

ferias_verao %>% 
  ggplot(aes(x = file_extension,
             y = users,
             fill = file_extension)) +
  geom_col() +
  labs(title = "Férias de verão")

Podemos notar que a linguagem python se destaca no grupo com relação aos usuários da plataforma, seguida de ruby e depois go e que nas férias de inverno no Hemifério Sul(inverso no Hemisfério Norte) há uma maior quantidade de usuários que utilizam essas linguagens.

permutationTest2(data = ferias_inverno, statistic = median(users), data2 = ferias_verao)
## Call:
## permutationTest2(data = ferias_inverno, statistic = median(users), 
##     data2 = ferias_verao)
## Replications: 9999
## Two samples, sample sizes are 85 181
## 
## Summary Statistics for the difference between samples 1 and 2:
##                                            Observed     Mean Alternative
## median(users): ferias_inverno-ferias_verao      197 8.146515   two.sided
##                                            PValue
## median(users): ferias_inverno-ferias_verao 0.2012

Antes da interpretação dos resultados, é importante saber o que significa o p-valor:

O p-valor, também denominado nível descritivo do teste, é a probabilidade de que a estatística do teste (como variável aleatória) tenha valor extremo em relação ao valor observado (estatística) quando a hipótese H0 é verdadeira. Para saber se rejeitamos ou não a hipótese, p-valor como o menor valor do nível de significância para o qual rejeitamos H0. Desta forma, se o nível de significância proposto para o teste for menor que o p-valor não rejeitamos a hipótese H0.

Dessa maneira, podemos observar que nosso p-valor para a análise foi de 0.21, ou seja, a probabilidade baixa que os usuários utilizem a plataforma durante as férias de inverno e verão. Então podemos rejeitar a hipótese.

2. Linguagens como java, c++ e javascript, pode-se dizer que elas mantiveram o nível de popularidade entre os usuários ao longo do tempo?

java_cpp_js <- commits %>% 
  filter(file_extension %in% c("java", "cpp", "js"))

Obs.: Filtrei o dado do ano para facilitar na visualização.

java_cpp_js %>% 
  filter(the_year == 2017) %>% 
  ggplot(aes(x = date,
             y = users,
             color = file_extension)) +
  geom_line() +
  labs(title = "Ano 2017")

java_cpp_js %>% 
  filter(the_year == 2016) %>% 
  ggplot(aes(x = date,
             y = users,
             color = file_extension)) +
  geom_line() +
  labs(title = "Ano 2016")

Como podemos observar, ao longo do tempo, apesar de ainda terem uma grande quantidade commits, a utilização desse grupo de linguagens está caindo entre os usuários, principalmente C++.

js <- java_cpp_js %>% 
  filter(file_extension == "js")

Aproveitando a pergunta anterior, podemos observar que há uma maior popularidade de usuários da linguagem javascript no dia da independência dos EUA do que no Brasil?

js_bra <- js %>% 
  filter(month_day == 7,
         the_month == 9)

js_eua <- js %>% 
  filter(month_day == 4,
         the_month == 7)
permutationTest2(data = js_eua, statistic = median(users), data2 = js_bra)
## Call:
## permutationTest2(data = js_eua, statistic = median(users), data2 = js_bra)
## Replications: 9999
## Two samples, sample sizes are 1 1
## 
## Summary Statistics for the difference between samples 1 and 2:
##                              Observed     Mean Alternative PValue
## median(users): js_eua-js_bra    -1180 1.180118   two.sided 0.4974

Com os resultados acima, podemos observar que nosso p-valor para a análise foi de 0.5122, ou seja, a probabilidade baixa de usuários que utilizam a plataforma no dia da independência dos eua. Dessa maneira, podemos rejeitar a hipótese.